Traditional system architectures for computing platforms, and mobile computing systems in particular (such as smart phones, tablet computers, wearable devices, and others), have a monolithic, vertical software design in which execution of applications stored on the file system, device drivers, and software stacks, is controlled by the operating system kernel. Traditional hardware architectures include the co-located system components and resources as a monolithic, fixed system. A consequence of traditional system software architectures is the co-location of the software into a single general purpose environment, resulting in several million lines of software code for a single system. While this may provide a convenient architecture to develop applications, the general purpose design results is a highly complicated, co-mingled architecture in which it is extremely difficult to manage and ensure control of the device for specific functions and in the presence of vulnerabilities. As computing platforms may be used to access and control other devices and systems, the same management and control implications are present.